150 P1=53280:P2=53281:PRINT"[147]":POKEP1,1:POKEP2,1:POKE53269,255:POKE53269,0 170 PRINTCHR$(142)" ONE MOMENT PLEASE..." 180 A=646:D=1:DIMT$(100),WQ(45):GOTO5530 190 POKEV+41,1:POKEV+29,4:POKE53269,PEEK(53269)OR4:POKE53269,0 200 POKEV+39,1:POKEV+29,1:POKE53269,PEEK(53269)OR1:POKE53269,0:FORT=41TO46:POKEV+T,2:NEXTT 220 V1=10:W1=17:U1=33:L1=134:A1=10:C1=1200 225 JJ=1 226 GOTO 270 260 POKE49,PEEK(47):POKE50,PEEK(48) 270 W=0:PRINT"[147]":POKEP1,0:POKEP2,0:PRINTTAB(9)"[158] ROMAN NUMERAL TEACHER " 280 PRINTTAB(13)"[153](C) MCMLXXXVIII":IFD=1THENGOSUB4050:D=0 290 IFJ<>1THENV1=12:W1=17:U1=50:L1=58:A1=10:C1=1350:GOSUB5240 300 J=0:V=0:V1=8:PRINT"":PRINTTAB(5)"[154]SELECT ONE LETTER: (L/R/Q/E)[158]" 320 PRINTTAB(5)"L[146] LEARNING ROMAN NUMERALS":PRINTTAB(5)"R[146] ROMAN NUMERAL EXAMPLES":KK=0 340 PRINTTAB(5)"Q[146] ROMAN NUMERALS QUIZ":PRINTTAB(5)"E[146] END[154]":PRINT:PRINT:IFFS>0THENGOSUB470 370 V1=10:W1=17:U1=67:L1=12:A1=10:C1=900:GOSUB5240 380 W1=17:C1=1000:U1=100:L1=117:A1=15 390 GETD$:IFD$="R"THEN850 410 IFD$="L"THENPRINT""TAB(5)" ":GOTO1090 420 IFD$="Q"THENG=0:GOTO3150 430 IFD$="E"THENGOSUB7000 450 GOTO390 460 : 470 FORT=1TO250:NEXTT:M$="QUIZ TALLY:":N$="[157] RIGHT OUT OF":P$="[157] TRIES":PRINTTAB(2)""; 490 FORMM=1TO13:PRINTMID$(M$,MM,1);:NEXT:PRINTFT;:FORNN=1TO14 500 PRINTMID$(N$,NN,1);:NEXT:PRINTFS;:FORPS=1TO7:PRINTMID$(P$,PS,1);:NEXT:PRINT:MM=0:NN=0:PP=0:RETURN 540 POKE53248+29,2:POKE53269,PEEK(53269)OR2:PRINTTAB(5)"[158] RIGHT! "; 560 IFB=1ORB=3THENPRINTA$" ="X:GOTO580 570 PRINT"[157]"X"= "A$; 580 PRINT"[145][145][145][145][145][145]":POKE781,19:SYS59903:CT=0:FT=FT+1:FS=FS+1:CJ=1:CP=1:GOSUB5320 600 Z=Z+1:ZZ=ZZ+1:FORT=1TO1000:NEXTT:G=0:POKE53269,PEEK(53269)AND(253) 610 CC=1:PP=1:RR=0:GOSUB4650:POKE781,22:SYS59903:POKE214,17:PRINT:POKE211,0 630 PRINT"[153]"Z"[157] RIGHT OUT OF"ZZ" ";:PRINTINT((Z/ZZ)*100)"[157]% ":RETURN 670 PRINT"[147]":PRINT" IMPORTANT POINT!":C1=1000:W1=17:A1=15:GOSUB5240 690 PRINT" ONE MORE THING BEFORE GOING BACK TO THE MAIN MENU..." 700 PRINT" IF YOU PUT A BAR OVER A ROMAN-NUMERAL" 710 PRINT" LETTER, THE VALUE OF THAT LETTER":PRINT" IS MULTIPLIED BY 1000." 720 PRINTTAB(7)"[210]"TAB(23)"[210]":PRINT" LIKE: X=10,000...OR...M=1,000,000":PRINT" USUALLY ONLY" 750 PRINT" THE LETTERS 'V', 'X' AND 'M' ARE USED":PRINT" SO..." 760 PRINTTAB(15)"[198]":PRINTTAB(15)"VMDCLXVII":PRINT" EQUALS: 5000+1000+500+100+50+10+5+1+1" 780 PRINTTAB(17)"6667":PRINT" NONE OF THESE EXAMPLES APPEAR IN QUIZ!" 800 PRINTTAB(7)"[156] FOR MAIN MENU, PRESS 'M'";:IFK=1THENK=0 810 GETM$:IFM$="M"THENJ=1:RETURN 820 GOTO810 850 POKEP1,1:POKEP2,1:GOSUB5240:A$="":AA=1:BB=3999 860 GOSUB3740:PRINT" EXAMPLE":PRINT" ROMAN NUMERALSTANDARD NUMBER" 890 PRINT" "A$TAB(22)X:IFV=1THENPRINTTAB(9)"([158]SUBTRACTION NEEDED)":V=0 900 POKE214,20:PRINT:POKE211,1:PRINT"WANT ANOTHER EXAMPLE? PRESS 'A'" 910 PRINT" RETURN TO MAIN MENU?? PRESS 'M'":JJ=1:GOSUB990 930 GETF$:IFF$=""THEN930 940 IFF$="A"THENA$="":GOTO860 950 IFF$="M"THENJ=1:GOTO270 960 GOTO930 990 FORR=54272TO54295:POKER,0:NEXT:VL=54296:WF=54276:AD=54277:NH=54273:NL=54272 1010 POKEVL,15:POKEWF,33:POKEAD,10:POKENH,200:POKENL,243:IFJJ=1THENFORN=1TO500:NEXT:GOTO1030 1020 FORN=1TO1500:NEXT 1030 POKENH,0:POKENL,0:POKEAD,0:IFJJ=1THENJJ=0:RETURN 1050 GETG$:IFG$=CHR$(13)THENRETURN 1060 GOTO1050 1090 POKEP1,7:POKEP2,7:A1=15:PRINT"[147]":GOSUB5240:PRINT"[147]":PRINT" ROMAN NUMERALS" 1110 PRINT" ROMAN NUMERALS USE LETTERS INSTEAD OF REGULAR NUMERALS."; 1120 PRINT" YOU SHOULD REMEMBER THAT SPECIFIC LETTERS"; 1130 PRINT" ARE USED FOR":PRINT" SPECIFIC STANDARD (ARABIC) NUMBERS." 1140 PRINT"[156] PRESS FOR ROMAN NUMERAL CHART[151]":GOSUB1050 1180 C1=100:GOSUB5240 1190 PRINT" ROMAN STANDARD ":IFK=1THENC1=100:GOSUB5240 1210 PRINTTAB(7)"[145]NUMERAL NUMBER":PRINTTAB(13)"I"TAB(19)"="TAB(25)"1" 1230 PRINTTAB(13)"V"TAB(19)"="TAB(25)"5":PRINTTAB(13)"X"TAB(19)"="TAB(25)"10":PRINTTAB(13)"L"TAB(19)"="TAB(25)"50" 1260 PRINTTAB(13)"C"TAB(19)"="TAB(25)"100":PRINTTAB(13)"D"TAB(19)"="TAB(25)"500" 1280 PRINTTAB(13)"M"TAB(19)"="TAB(25)"1000":IFV=1THENV=0:PRINT"":GOTO1330 1290 PRINT" BY COMBINING CERTAIN LETTERS, YOU CAN BUILD THE ROMAN"; 1300 PRINT" NUMERAL YOU NEED.";:PRINT"..BY OBSERVING THE LETTERS YOU HAVE, "; 1310 PRINT"YOU CAN EASILY CHANGE ANY ROMAN NUMERAL INTO AN EVERYDAY"; 1320 PRINT" ARABIC NUMBER." 1330 IFK=1ORS=1THENPRINTTAB(5)"[158]TO RETURN TO PREVIOUS PAGE, 'P'" 1340 PRINTTAB(4)"TO GO TO LEARNING MENU, PRESS 'L'[144]"; 1350 GETH$:IFH$=""THEN1350 1360 IFH$="L"THENS=0:V=0:GOTO1410 1370 IFH$="P"ANDK=1ORS=1THENRETURN 1380 GOTO1350 1410 C1=500:K1=0:GOSUB5240:POKEP1,3:POKEP2,3:PRINT"[147]":PRINT"[151] HOW TO" 1440 PRINT" SELECT ONE: (1/2/3/4)" 1450 PRINT" 1[146] CHANGE ROMAN NUMERALS TO STANDARD":K=0 1460 PRINT" 2[146] CHANGE STANDARD NUMBERS TO ROMAN" 1470 PRINT" 3[146] RETURN TO ROMAN NUMERAL CHART":PRINT" 4[146] RETURN TO MAIN MENU":D=0 1490 GETT$:IFT$=""THEN1490 1500 IFT$="1"THENV=1:K$=" #1":GOSUB6340:GOTO1550 1510 IFT$="2"THENK$=" #2":GOSUB6340:GOTO2250 1520 IFT$="3"THENV=1:PRINT"[147] ROMAN NUMERALS.":C1=200:GOSUB5240:GOTO1190 1530 IFT$="4"THENJ=1:GOTO270 1540 GOTO1490 1550 C1=100:GOSUB5240:IFK1=1THENK=1 1570 PRINT"[147] HOW TO "K$"[146]";:IFK=1THENPRINT" " 1580 IFK<>1THENPRINT" PRESS TO CONTINUE" 1590 PRINT" WHEN CHANGING FROM A ROMAN NUMERAL TO AN ORDINARY"; 1600 PRINT" NUMBER, READ YOUR ROMAN NUMERAL FROM RIGHT TO LEFT (_)":IFK<>1THENGOSUB1050 1620 PRINT" HERE'S AN EXAMPLE.":PRINT" CHANGE LXXVI TO AN ARABIC NUMERAL.":IFK<>1THENGOSUB990 1640 PRINT" READ IT BACKWARDS -- RIGHT TO LEFT (_)" 1650 PRINT" SINCE I=1, V=5, X=10, X=10, L=50..." 1660 PRINT" (REMEMBER YOUR ROMAN NUMERAL CHART?)":IFK<>1THENGOSUB990 1680 PRINT" AND SINCE THE NUMBERS DO NOT GET" 1690 PRINT" SMALLER: 1...5...10...10...50, JUST":IFK<>1THENGOSUB990 1710 PRINT" ADD 'EM ALL UP -- 1+5+10+10+50 = 76":PRINTTAB(15)"LXXVI=76":IFK<>1THENGOSUB990 1730 PRINT"[156] CONTINUE LESSON? PRESS " 1740 PRINT" GO TO ROMAN NUMERAL CHART? PRESS 'R'" 1750 PRINT" HOW TO"K$"[146] ":IFK<>1THENC1=100:GOSUB5240 1770 IFK=1THENK=0 1780 GETJ$:IFJ$=CHR$(13)THEN1820 1790 IFJ$="R"THENV=1:K=1:PRINT"[147] ROMAN NUMERALS.":GOSUB1190:GOTO1550 1800 GOTO1780 1810 JJ=1:GOSUB990 1820 C1=100:GOSUB5240:IFK1=1THENK=1 1840 PRINT"[147] HOW TO"K$"[146]";:IFK=1THENPRINT" " 1850 IFK<>1THENPRINT" PRESS TO CONTINUE" 1860 PRINT" SOMETIMES ROMAN NUMERALS GET TRICKY.":IFK<>1THENGOSUB1050 1880 PRINT" LOOK AT THIS EXAMPLE.":PRINT" CHANGE XCIV TO AN ARABIC NUMERAL." 1890 IFK<>1THENGOSUB990 1900 PRINT" AS YOU READ 'BACKWARDS' (_), NOTICE" 1910 PRINT" SOME NUMBERS ARE SMALLER THAN ONES" 1920 PRINT" TO THEIR RIGHT: V=5, I=1, C=100, X=10" 1930 PRINT" (FORGET YOUR ROMAN NUMERAL CHART?)":IFK<>1THENGOSUB990 1950 PRINT" IF A LETTER OF SMALLER VALUE IS ON THE" 1960 PRINT" LEFT";:PRINT" OF A LARGER ONE, YOU SUBTRACT"; 1970 PRINT" THE SMALLER ONE FROM THE GREATER ONE.":IFK=1THEN2000 1990 GOSUB990 2000 IFK=1THENPRINT" *";:GOTO2020 2010 PRINT" [158]*"; 2020 PRINT"SUBTRACT 'I' FROM 'V' ... (5-1)=4":IFK=1THEN2070 2040 POKE214,6:PRINT:POKE211,10:PRINT"[158][197][197]":GOSUB990 2060 IFK<>1THENPOKE214,6:PRINT:POKE211,8:PRINT"[158][197][197] " 2070 IFK=1THENPRINT" *";:GOTO2090 2080 PRINT" [158]*"; 2090 PRINT"SUBTRACT 'X' FROM 'C' ... (100-10)=90":IFK=1THEN2130 2110 GOSUB990:IFK<>1THENPOKE214,6:PRINT:POKE211,8:PRINT" " 2130 PRINT" NOW, ADD THESE ANSWERS UP ... 90+4=94":PRINTTAB(16)"XCIV=94":IFK<>1THENGOSUB990 2160 PRINT"[156] GO TO ROMAN NUMERAL CHART? PRESS 'R'":PRINT" GO TO MAIN MENU? PRESS 'M'" 2180 PRINT" HOW TO"K$"[146] ":IFK<>1THENC1=100:GOSUB5240 2200 IFK=1THENK=0 2210 GETH$:IFH$="R"THENV=1:K=1:PRINT"[147] ROMAN NUMERALS.":GOSUB1190:GOTO1820 2230 IFH$="M"THENGOSUB670:GOTO270 2240 GOTO2210 2250 C1=100:GOSUB5240:IFK1=1THENK=1 2270 PRINT"[147] HOW TO"K$"[146]";:IFK=1THENPRINT" " 2280 IFK<>1THENPRINT" PRESS TO CONTINUE" 2290 PRINT" ARABICS TO ROMAN NUMERALS? IT'S EASY!":IFK=1THEN2320 2310 GOSUB1050 2320 PRINT" HERE'S AN EXAMPLE.":PRINT" CHANGE 625 TO A ROMAN NUMERAL.":IFK=1THEN2350 2340 GOSUB990 2350 PRINT" FIRST, SEPARATE THE NUMBER INTO ITS" 2360 PRINT" PLACE-VALUE PARTS: 625 = 600 + 20 + 5":IFK=1THEN2380 2370 GOSUB990 2380 PRINT" THEN. WHAT ROMAN NUMERAL LETTERS...":PRINT" COMBINE TO EQUAL '600'?"; 2400 IFK<>1THENPOKE214,9:PRINT:POKE211,25:PRINT"[158] [197][197][197] " 2410 IFK=1THEN2430 2420 GOSUB990 2430 PRINTTAB(24)" D AND C (DC";:PRINT")":IFK=1THEN2450 2440 GOSUB990 2450 PRINT" COMBINE TO EQUAL '20'?";:IFK=1THEN2480 2460 IFK<>1THENPOKE214,9:PRINT:POKE211,25:PRINT"[158] [197][197] " 2470 GOSUB990 2480 PRINTTAB(24)" X AND X (XX";:PRINT")":IFK=1THEN2500 2490 GOSUB990 2500 PRINT" COMBINE TO EQUAL '5'?";:IFK=1THEN2530 2510 IFK<>1THENPOKE214,9:PRINT:POKE211,25:PRINT"[158] [197]" 2520 GOSUB990 2530 PRINTTAB(24)" JUST: V (V";:PRINT")":IFK=1THEN2560 2540 GOSUB990:IFK<>1THENPOKE214,9:PRINT:POKE211,25:PRINT" [197][197][197] " 2560 PRINT" (NOTE! 600 IS 'DC' -- 'CD' MEANS 400)":IFK=1THEN2600 2580 GOSUB990:IFK<>1THENPOKE214,9:PRINT:POKE211,25:PRINT" " 2600 PRINT" COMBINE THE LETTERS, GOING BIGGEST ARABIC NUMBERS TO"; 2610 PRINT" SMALLEST -- DC+XX+V":PRINTTAB(15)"625=DCXXV":IFK<>1THENGOSUB990 2630 PRINT"[156] CONTINUE LESSON? PRESS " 2640 PRINT" GO TO ROMAN NUMERAL CHART? PRESS 'R'" 2650 PRINT" HOW TO."K$"[146] ":IFK<>1THENC1=100:GOSUB5240 2670 IFK=1THENK=0 2680 GETJ$:IFJ$=CHR$(13)THEN2710 2690 IFJ$="R"THENV=1:K=1:PRINT"[147] ROMAN NUMERALS.":GOSUB1190:GOTO2250 2700 GOTO2680 2710 C1=100:GOSUB5240:IFK1=1THENK=1 2730 PRINT"[147] HOW TO."K$"[146]";:IFK=1THENPRINT" " 2740 IFK<>1THENPRINT" PRESS TO CONTINUE" 2750 PRINT" SOMETIMES CHANGING TO ROMAN NUMERALS" 2760 PRINT" NEEDS EXTRA CONCENTRATION...":IFK<>1THENGOSUB1050 2780 PRINT" THIS EXAMPLE SHOWS WHY.":PRINT" TO CHANGE 479 TO A ROMAN NUMERAL..." 2800 IFK<>1THENGOSUB990 2810 PRINT" SEPARATE YOUR NUMBER INTO THE PROPER" 2820 PRINT" PLACE-VALUE PARTS: 400 + 70 + 9":IFK<>1THENGOSUB990 2830 IFK<>1THENPOKE214,10:PRINT:POKE211,20:PRINT"[158][197][197][197] [145]" 2840 PRINT" WHAT LETTERS MAKE UP 400?";:IFK<>1THENGOSUB990:PRINT""; 2860 PRINT" NOT C+C+C+C!":IFK<>1THENGOSUB990 2870 PRINT" YOU MAY USE A LETTER NO MORE THAN 3 TIMES"; 2880 PRINT" IN A ROW.";:IFK<>1THENGOSUB990 2890 PRINT" YOU MUST SUBTRACT!":PRINT" (CD";:PRINT") _ SMALLER ON LEFT"; 2910 PRINT" 400 = 500-100":IFK<>1THENGOSUB990 2920 IFK<>1THENPOKE214,10:PRINT:POKE211,20:PRINT" [158][197][197] " 2930 PRINT" (LXX) _ NO SUBTRACTING! 70 = 50+10+10":IFK<>1THENGOSUB990 2950 IFK<>1THENPOKE214,10:PRINT:POKE211,20:PRINT" [158][197]" 2960 PRINT" (IX";:PRINT") _ SMALLER ON LEFT 9 = 10-1":IFK<>1THENGOSUB990:PRINT""; 2980 IFK<>1THENPOKE214,10:PRINT:POKE211,20:PRINT"[158][197][197][197] [197]" 2990 IFK=1THENPRINT" SMALLER LETTER ON LEFT MEANS SUBTRACT!":GOTO3030 3000 PRINT" [158]SMALLER LETTER ON LEFT MEANS SUBTRACT!":IFK<>1THENGOSUB990 3020 IFK<>1THENPOKE214,10:PRINT:POKE211,20:PRINT" " 3030 PRINTTAB(14)"479=CDLXXIX":IFK<>1THENGOSUB990 3040 PRINT"[156] GO TO ROMAN NUMERAL CHART? PRESS 'R'":PRINT" GO TO MAIN MENU? PRESS 'M'" 3060 PRINT" HOW TO"K$"[146] ":IFK<>1THENC1=100:GOSUB5240 3080 IFK=1THENK=0 3090 GETH$:IFH$="R"THENV=1:K=1:PRINT"[147] ROMAN NUMERALS":GOSUB1190:GOTO2710 3110 IFH$="M"THENGOSUB670:GOTO270 3120 GOTO3090 3150 POKEP1,6:POKEP2,6:GOSUB5240 3160 PRINT"[147]":PRINTTAB(8)"[158] ROMAN NUMERALS QUIZ ":IFDD=1THEN3240 3170 PRINTTAB(9)"DO YOU KNOW THEM ?!":FORT=1TO800:NEXTT:PRINT"" 3190 PRINTTAB(7)"[159]PRESS TO START[153]" 3200 V1=12:W1=17:U1=50:L1=58:A1=10:C1=1350:GOSUB5240 3210 GETQ$:IFQ$=CHR$(13)THENDD=1:GOTO3230 3220 GOTO3210 3230 PRINT"[147]":PRINTTAB(8)"[158] ROMAN NUMERALS QUIZ " 3240 PRINTTAB(7)" ":B=0 3250 PRINTTAB(2)"[153]YOU GET 3 TRIES, THEN A NEW PROBLEM":IFDD=1THENPRINT 3260 PRINTTAB(7)"SELECT LEVEL: (1/2/3/4)":E=0:IFDD=1THENPRINT 3270 PRINTTAB(7)"1[146] ROMAN TO ARABIC. EASY":IFDD=1THENPRINT 3280 PRINTTAB(7)"2[146] ARABIC TO ROMAN. EASY":IFDD=1THENPRINT 3290 PRINTTAB(7)"3[146] MIXED. MEDIUM":IFDD=1THENPRINT 3300 PRINTTAB(7)"4[146] MIXED. EASY/MEDIUM/HARD":IFDD=1THENPRINT:PRINT 3310 PRINTTAB(7)"[158]5[146] RETURN TO MAIN MENU":IFDD=1THENPRINT 3320 C1=500:A1=15:U1=50:L1=58:W1=17:GOSUB5240:F=0 3340 GETQ$:IFQ$="1"THENB=1:GOTO3430 3360 IFQ$="2"THENB=2:GOTO3490 3370 IFQ$="3"THENB=3:GOTO3550 3380 IFQ$="4"THENB=4:GOTO3630 3390 IFQ$="5"THENJ=1:GOTO270 3400 GOTO3340 3430 PRINT"[147][153] [159]QUIZ #1. EASY[153]":PRINT" ROMAN TO ARABIC":KK=1:C1=100:GOSUB5240:AA=1:BB=100 3450 GOSUB3700:IFS=1THENG=G-1:GOTO4150 3470 IFK<>1THENFORT=1TO900:NEXTT 3480 Z=0:ZZ=0:GOTO4130 3490 PRINT"[147][153] [159]QUIZ #2. EASY[153]":PRINT" ARABIC TO ROMAN":KK=1:C1=100:GOSUB5240:AA=1:BB=100 3510 GOSUB3700:IFS=1THENG=G-1:GOTO4150 3530 IFK<>1THENFORT=1TO900:NEXTT 3540 Z=0:ZZ=0:GOTO4130 3550 IFF=2ANDCV=0THEN3640 3560 PRINT"[147][153] [159]QUIZ #3. MEDIUM[153]":PRINT" ARABIC TO ROMAN / ROMAN TO ARABIC" 3570 IFF=2ANDCV=0THEN3780 3580 KK=1:AA=100:BB=1000:E=1:C1=100:GOSUB5240 3590 GOSUB3700:IFS=1THENG=G-1:GOTO4150 3610 IFK<>1THENFORT=1TO900:NEXTT 3620 Z=0:ZZ=0:GOTO5030 3630 IFF=2ANDCV=0THEN3560 3640 PRINT"[147][153] [159]QUIZ #4. EASY/MEDIUM/HARD[153]":PRINT" ARABIC TO ROMAN / ROMAN TO ARABIC" 3660 IFF=2ANDCV=0THEN3580 3670 KK=1:E=2:C1=100:GOSUB5240:AA=10:BB=3999:GOTO3590 3700 PRINT"[158] AFTER ENTERING ANSWER, PRESS " 3710 PRINT" ENTER 'Q' TO RETURN TO QUIZ MENU" 3720 PRINT" ENTER 'R' TO SEE ROMAN NUMERAL CHART":RETURN 3740 ::HM=(BB-AA)+1:X=INT(RND(0)*HM)+AA:N=X:IFKK<>1THENPRINT"[147]" 3780 PRINT"" 3790 IFN-1000<0THEN3810 3800 P=1000:Z$="M":GOTO4000 3810 IFN-500<0THEN3840 3820 IFINT(N/100)=9THENZ$="CM":N=N-900:P=0:V=1:GOTO4000 3830 P=500:Z$="D":GOTO4000 3840 IFN-100<0THEN3870 3850 IFINT(N/100)=4THENZ$="CD":N=N-400:P=0:V=1:GOTO4000 3860 P=100:Z$="C":GOTO4000 3870 IFN-50<0THEN3900 3880 IFINT(N/10)=9THENZ$="XC":N=N-90:P=0:V=1:GOTO4000 3890 P=50:Z$="L":GOTO4000 3900 IFN-10<0THEN3930 3910 IFINT(N/10)=4THENZ$="XL":N=N-40:P=0:V=1:GOTO4000 3920 P=10:Z$="X":GOTO4000 3930 IFN-5<0THEN3960 3940 IFN=9THENZ$="IX":N=N-9:P=0:V=1:GOTO4000 3950 P=5:Z$="V":GOTO4000 3960 IFN-1<0THEN3990 3970 IFN=4THENZ$="IV":N=N-4:P=0:V=1:GOTO4000 3980 P=1:Z$="I":GOTO4000 3990 GOTO4020 4000 N=N-P:A$=A$+Z$:GOTO3790 4020 RETURN 4050 C=40:L=23:PRINT"[153]":PRINTCHR$(19);:FORH=1TOC:PRINTCHR$(18)CHR$(32);:NEXT:FORV=1TOL:PRINTCHR$(18)CHR$(32); 4080 PRINTCHR$(146)SPC(C-2)CHR$(18)CHR$(32);:NEXT:FORH=1TOC-2:FORH=1TOC-2:PRINTCHR$(18)CHR$(32);:NEXT 4100 PRINTCHR$(18)CHR$(32)CHR$(157)CHR$(148)CHR$(32);:RETURN 4130 : 4140 A$="":AA$="":GOSUB3740 4150 G=G+1:POKE781,14:SYS59903:IFG=4THENGOSUB5090 4170 IFG=4AND(B=3ORB=4)THENG=0:GOTO5030 4180 IFG=4THENG=0:GOTO4140 4190 PRINT"[150]"G"[157]. [153]" 4200 IFB=2ORB=4THENGOSUB4840:GOTO4260 4210 PRINT" YOUR ROMAN NUMERAL: [157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][150]"A$ 4220 IFS<>1THENC1=100:V1=10:W1=33:U1=34:L1=75:A1=15:GOSUB5240 4230 PRINT"[153] CHANGE IT":PRINT" TO AN ARABIC (REGULAR) NUMBER.":IFS=1THENGOSUB4670 4250 XX$="" 4260 W=W+1:LN=0:PRINT"[153] YOUR ANSWER IS?[146] ";:GOSUB5990 4280 GETVV$:TM=TM+1:IFTM=225THENGOSUB5990 4290 IFVV$=""THEN4280 4300 IFVV$=CHR$(13)AND(B=2ORB=4)THENGOSUB4910:GOTO4570 4310 IFVV$=CHR$(13)THEN4460 4320 IFVV$=CHR$(20)THENGOSUB4800:TM=0:GOTO4280 4330 IFVV$="[145]"ORVV$=""ORVV$="[157]"ORVV$=""ORVV$=CHR$(32)ORVV$=CHR$(19)THEN4280 4340 IFVV$="0"ORVV$="1"ORVV$="2"ORVV$="3"THEN4400 4350 IFVV$="4"ORVV$="5"ORVV$="6"ORVV$="7"THEN4400 4360 IFVV$="8"ORVV$="9"ORVV$="I"ORVV$="V"THEN4400 4370 IFVV$="X"ORVV$="L"ORVV$="C"ORVV$="D"ORVV$="M"THEN4400 4380 IFVV$="Q"ORVV$="R"THEN4400 4390 GOTO4280 4400 PRINTVV$;:CV=0:IFB=2ORB=4THENAA$=AA$+VV$:LN=LEN(AA$):TM=0:GOTO4430 4420 XX$=XX$+VV$:LN=LEN(XX$):TM=0 4430 IFLN=19THENPRINT"":PRINTTAB(10)"[150] ANSWER TOO LONG! ":FL=1:GOTO4480 4440 GOTO4280 4450 IFB=2ORB=4THENGOSUB4910:GOTO4570 4460 IFXX$=""THENW=W-1:IF(W-1)<0THENW=0 4470 IFXX$=""THEN4280 4480 T$(W)=XX$:PRINT"":IFXX$="Q"THENDD=1:G=0:W=0:CV=0:CJ=0:CT=0:GOTO3160 4500 IFXX$="R"THENV=1:CV=1:S=1:PRINT"[147][153] ROMAN NUMERALS." 4510 IFXX$="R"THENT$(W)=T$(W-1):IF(W-1)<0THENW=0 4520 IFXX$="R"ANDE=1THENGOSUB1180:GOTO3550 4530 IFXX$="R"ANDE=2THENGOSUB1180:GOTO3630 4540 IFXX$="R"THENGOSUB1180:GOTO3430 4550 IFVAL(XX$)=XTHENGOSUB540:IFB=3THEN5030 4560 IFVAL(XX$)=XTHEN4130 4570 POKE781,19:SYS59903:IFG=3THENGOSUB5170:GOSUB6060:GOTO4640 4590 IFK=1THENK=0 4600 IFFL=1THENFL=0:GOTO4620 4610 GOSUB6160 4620 PP=1:RR=1:ZZ=ZZ+1:C1=1500:W1=33:U1=17:L1=33:A1=15:GOSUB5240 4640 FORT=1TO2500:NEXT:GOSUB4650:GOTO4150 4650 POKE53269,PEEK(53269)AND(254):POKE781,22:SYS59903:POKE781,16:SYS59903 4670 IFS=1THENPRINT"":IFZZ=0THENS=0:PRINT"[145][145][145][145][145]":RETURN 4680 IFPP<>1THEN4730 4690 IFCP=1THENCP=0:GOTO4710 4700 PRINT"[153]"Z"[157] RIGHT OUT OF"ZZ" ";:PRINTINT((Z/ZZ)*100)"[157]% " 4710 IFG>1ANDCT=1ANDCV=1THENPRINT"[145][145]":GOTO4730 4720 IFCT=1ANDCV=1THENPRINT"[145]" 4730 POKE781,19:SYS59903:IFCC=1THENCC=0:RETURN 4740 IFRR<>1THEN4770 4750 IFT$(W)<>"R"THENPRINT"[158] YOUR WRONG ANSWER: "T$(W):POKE781,15:SYS59903 4760 POKE198,0:FS=FS+1:IFPP=1THENCJ=0 4770 IFS=1THENPRINT"[145][145][145][145][145][145][145][145]":S=0:IFPP=0ANDRR=0THENPRINT"" 4780 IFCJ=1ANDCV=1THENPRINT"[145]" 4790 RETURN 4800 IFLN<>0THENPRINTCHR$(20); 4810 LN=LN-1:IFLN<0THENLN=0 4820 XX$=LEFT$(XX$,LN):AA$=LEFT$(AA$,LN):RETURN 4840 PRINT" YOUR ARABIC NUMBER: [157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][150]"X 4850 PRINT"[145] ":IFS<>1THENC1=100:V1=10:W1=33:U1=34:L1=75:A1=15:GOSUB5240 4870 PRINT"[153] CHANGE IT":PRINT" TO A ROMAN NUMERAL. ":IFS=1THENGOSUB4670 4890 AA$="":RETURN 4910 IFAA$=""THENW=W-1:IF(W-1)<0THENW=0 4920 IFAA$=""THEN4280 4930 T$(W)=AA$:PRINT"":IFAA$="Q"THENDD=1:G=0:W=0:CV=0:CJ=0:CT=0:GOTO3160 4950 IFAA$="R"THENV=1:CV=1:S=1:PRINT"[147][153] ROMAN NUMERALS." 4960 IFAA$="R"THENT$(W)=T$(W-1):IF(W-1)<0THENW=0 4970 IFAA$="R"ANDE=1ANDB=4THENGOSUB1180:GOTO3550 4980 IFAA$="R"ANDE=2ANDB=4THENGOSUB1180:GOTO3630 4990 IFAA$="R"THENGOSUB1180:GOTO3490 5000 IFAA$=A$AND(B=1ORB=2)THENGOSUB540:GOTO4130 5010 IFAA$=A$THENGOSUB540:GOTO5030 5020 RETURN 5030 F=INT(RND(0)*100)+1:IFF/2=INT(F/2)THENF=1:GOTO4140 5050 F=2:IFB=4THENB=3:GOTO4140 5070 B=4:GOTO4140 5090 IFB=2ORB=4THENPRINT"[150] ANSWER IS: "A$"[146] WAIT. ":GOTO5110 5100 IFB=1ORB=3THENPRINT"[150] ANSWER IS:"X"[146][157] WAIT. " 5110 RR=0:C1=1500:W1=33:U1=34:L1=75:A1=15:JT=220:V=53248 5112 FORT=1TO6:POKE53288+T,7:NEXTT:FORT=1TO2200:NEXTT 5113 POKEV+5,JT:POKEV+7,JT:POKEV+9,JT:POKEV+11,JT:POKEV+13,JT:POKEV+15,JT 5114 FORYT=1TO3:POKE53269,252:JJ=1:GOSUB990:POKE53269,0:FORT=1TO50:NEXTT 5116 NEXTYT:FORT=1TO700:NEXTT:GOSUB5240:POKE781,19:SYS59903:RETURN 5170 POKE53248+29,1:POKE53269,PEEK(53269)OR1:IFFL=1THENPRINT"[145][145][145]" 5180 ZZ=ZZ+1:POKE214,17:PRINT:POKE211,0:PRINT"[153]"Z"[157] RIGHT OUT OF"ZZ" ";:PRINTINT((Z/ZZ)*100)"[157]% " 5200 PRINTTAB(6)"[158] STILL NOT RIGHT. (NEXT PROBLEM)[145][145][145][145][145][145]":FL=0:CT=1:CP=1:F=0:RETURN 5240 FORR=54272TO54295:POKER,0:NEXT:VL=54296:WF=54276:AD=54277:NH=54273:NL=54272 5260 POKEVL,V1:POKEWF,W1:POKEAD,A1:POKENH,U1:POKENL,L1:FORN=1TOC1:NEXT:C1=0:POKENL,0:POKENH,0:POKEAD,0:RETURN 5320 C1=150:U1=150:L1=24:FORR=54272TO54295:POKER,0:NEXT 5330 VL=54296:WF=54276:AD=54277:NH=54272:NL=54273:FORCS=0TO4 5350 POKEVL,15:POKEWF,17:POKEAD,15:POKENH,U1+(10*CS):POKENL,L1+(15*CS) 5360 IFD$="E"THENGOSUB5400:FORN=1TO200:NEXTN:GOTO5380 5370 FORN=1TOC1:NEXT:C1=C1+(125*CS):POKEP1,2+CS:POKEP2,2+CS 5380 NEXTCS:POKENL,0:POKENH,0:POKEAD,0:POKEP1,6:POKEP2,6 5400 IFD$="E"ANDCS<6THENPOKE646,CS+1 5410 IFD$="E"THENPOKE214,3:PRINT:POKE211,10:PRINT"MCMLXXXVIII = 1988!" 5420 IFCS=4ANDD$="E"THENPRINT"":CS=CS+1:GOTO5410 5430 RETURN 5530 ::V=53248:POKEV+40,7:FORSP=0TO7:POKE2040+SP,32+SP:NEXT:QR=2112:GOSUB5972 5570 DATA255,255,255,128,0,1,128,0,1:DATA128,0,1,134,0,97,134,0,97 5590 DATA128,0,1,128,0,1,128,0,1:DATA128,24,1,128,24,1,128,0,1 5610 DATA128,0,1,132,0,33,130,0,65:DATA129,0,129,128,129,1,128,126,1 5630 DATA128,0,1,128,0,1,255,255,255,255:POKEV+2,36:POKEV+3,220 5670 QR=2048:GOSUB5972:DATA255,255,255,128,0,1,128,0,1:DATA128,0,1,134,0,97,134,0,97 5710 DATA128,0,1,128,0,1,128,0,1:DATA128,24,1,128,24,1,128,0,1 5730 DATA128,0,1,128,0,1,128,255,1:DATA130,0,129,130,0,65,132,0,33 5750 DATA132,0,33,128,0,1,255,255,255,255:POKEV,36:POKEV+1,220:QR=2176:GOSUB5972 5790 DATA0,0,0,0,0,0,0,0,0,30,1,255,63,1,153,99,128,24,65,128,24,65,128,24 5800 DATA1,128,24,3,12,24,6,12,24,12,0,24,12,0,24,12,0,24,0,0,24,0,0,24 5810 DATA12,1,153,12,1,255,0,0,0,0,0,0,0,0,0,255:QR=2240:GOSUB5972 5820 DATA0,0,0,0,0,0,0,0,0,135,128,15,135,128,15,1,128,12,1,128,12,0,192,24 5830 DATA48,192,24,48,96,48,0,96,48,0,48,96,0,48,96,0,24,192,0,24,192,0,13,128 5840 DATA128,31,192,128,31,192,0,0,0,0,0,0,0,0,0,255:QR=2304:GOSUB5972 5850 DATA0,0,0,0,0,0,0,0,0,126,31,143,16,6,6,24,12,6,12,24,6,6,48,6 5860 DATA99,97,134,097,193,134,0,192,6,1,224,6,3,48,6,6,24,6,12,12,6,24,6,6 5870 DATA126,31,143,126,31,143,0,0,0,0,0,0,0,0,0,255:QR=2368:GOSUB5972 5880 DATA0,0,0,0,0,0,0,0,0,192,0,31,192,0,59,0,0,192,0,1,128,0,3,128 5890 DATA0,195,0,0,195,0,0,3,0,0,3,0,0,3,0,0,3,128,2,1,128,2,0,192 5900 DATA254,0,59,254,0,31,0,0,0,0,0,0,0,0,0,255:QR=2432:GOSUB5972 5910 DATA0,0,0,0,0,0,0,0,0,193,252,0,193,246,0,64,51,0,0,49,128,0,48,192 5920 DATA0,48,64,12,48,102,12,48,102,0,48,96,0,48,64,0,48,192,0,49,128,64,51,0 5930 DATA193,246,0,193,254,0,0,0,0,0,0,0,0,0,0,255:QR=2496:GOSUB5972:GOTO5975 5940 DATA0,0,0,0,0,0,0,0,0,240,240,60,121,224,126,121 5950 DATA224,199,111,96,131,102,96,131,102,96,3,96,102,6,96,102 5960 DATA12,96,96,24,96,96,24,96,96,24,96,96,0,96,96,0 5970 DATA240,240,24,240,240,24,0,0,0,0,0,0,0,0,0,255 5972 FORN=0TO63:READQ:POKEQR+N,Q:NEXT:RETURN 5975 X=1:FORCT=1TO8:POKEV+29,X:X=X*2:NEXTCT:GOTO190 5990 ::FORT=1TO200:NEXTT:TM=0:FORSP=1TO4:V1=9:C1=400:U1=67:L1=12:A1=15:W1=17 6020 FORSP=1TO4:POKE214,13:PRINT:POKE211,17+LN:PRINT" [146][157]":GOSUB5240 6030 POKE214,13:PRINT:POKE211,17+LN:PRINT" [157]";:FORTV=1TO50:NEXTTV:NEXTSP:RETURN 6060 ::CK=54272:POKECK+4,0:POKECK+6,240:POKE54296,3:POKE54295,0:POKECK+1,4:POKECK+5,0:POKECK+4,33 6100 FORZP=5024TO100STEP-75:POKECK+1,ZP/256:POKECK,ZPAND255:NEXTZP:POKECK+4,0:RETURN 6160 ::EN=INT(RND(0)*13+1) 6180 ONENGOTO6190,6200,6210,6220,6230,6240,6250,6260,6270,6280,6290,6300,6310 6190 PRINT"[150] SORRY, NOT RIGHT. DO TRY AGAIN.":RETURN 6200 PRINT"[150] NICE TRY... BUT YOU CAN DO BETTER.":RETURN 6210 PRINT"[150] WELL... GIVE IT ANOTHER GO. ":RETURN 6220 PRINT"[150] NOPE. NOW GIVE IT YOUR BEST. ":RETURN 6230 PRINT"[150] GOOD ANSWER... BUT IT'S NOT RIGHT. ":RETURN 6240 PRINT"[150] THAT'S NOT RIGHT. (BUT DON'T GIVE UP!)":RETURN 6250 PRINT"[150] NO. YOU'LL JUST HAVE TO TRY AGAIN.":RETURN 6260 PRINT"[150] THIS IS NOT RIGHT. TRY ONE MORE TIME. ":RETURN 6270 PRINT"[150] INCORRECT. CAN YOU DO BETTER?":RETURN 6280 PRINT"[150] NO. NO. NO. THINK. THEN GO AGAIN. ":RETURN 6290 PRINT"[150] NO. GIVE IT SOME EXTRA THOUGHT.":RETURN 6300 PRINT"[150] WRONG. HOW ABOUT ANOTHER TRY?":RETURN 6310 PRINT"[150] THAT'S NOT IT. REVIEW ROMAN NUMERALS?":RETURN 6340 POKEP1,5:POKEP2,5:POKEA,9:PRINT"[147] DISPLAY OPTION" 6360 PRINT" FOR YOUR ROMAN NUMERAL INSTRUCTONS," 6370 PRINT" YOU CAN USE A STEP-BY-STEP SCREEN DISPLAY...OR" 6380 PRINT" YOU CAN GO FULL-SCREEN INSTEAD":PRINTTAB(10)" SELECT: (S/F)" 6400 PRINTTAB(9)" S[146] STEP-BY-STEP":PRINTTAB(9)" F[146] FULL-SCREEN":C1=100:GOSUB5240 6420 GETS$:IFS$=""THEN6420 6430 IFS$="S"THENPOKEP1,3:POKEP2,3:RETURN 6440 IFS$="F"THENK1=1:POKEP1,3:POKEP2,3:RETURN 6450 GOTO6420 6460 ::FORT=1TO700:NEXT:POKE54272,0:POKE54273,0:POKE54274,0:POKE54275,8:POKE54278,240:POKE54296,3 6510 POKE54277,0:POKE54276,65:FORF=0TO38535STEP1000:H=INT(F/256):L=INT(F-(256*H)) 6522 POKE54272,L:POKE54273,H:FORT=1TO20:NEXT:NEXT:FORI=1TO20:POKE54296,0:FORIO=1TO10:POKE54296,2:NEXTIO:NEXTI 6525 FORT=1TO100:NEXTT:POKE54276,0:RETURN 7000 PRINT"ARE YOU SURE YOU WANT TO QUIT? (Y/N)[145]" 7005 GETA$:IFA$<>"Y"ANDA$<>"N"THEN7005 7006 IFA$="Y"THEN7010 7007 PRINT" ":RETURN 7010 OPEN15,8,15,"R0:HELLO CONNECT=HELLO CONNECT":INPUT#15,ER,ER$:CLOSE15 7020 IF ER<>63 THEN PRINT"[147]":END 7030 POKE44,8:POKE2048,.:LOAD"HELLO CONNECT",8